/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package unmsm.fisi.tesis.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import unmsm.fisi.tesis.coneccion.ConexionWithSQL;
import unmsm.fisi.tesis.entidad.Diagnostico;
import unmsm.fisi.tesis.entidad.analisis.CromosomaFitnes;
import unmsm.fisi.tesis.persistencia.HmHistoriaclinica;

/**
 *
 * @author Jhon
 */
public class PacienteDAO {
	
	public static  List<Diagnostico> obtenerDignosticoDePacientes(String numeroHistoria, String esEntrenamiento) {
		
		Connection cnx = ConexionWithSQL.obtenerConexionParaHistoriaClinica();
		
		Diagnostico  diagnostico;
		List<Diagnostico> listaDiagnostico = new ArrayList<Diagnostico>();
			try
			{
				CallableStatement cstmt = cnx.prepareCall("{call dbo.sp_obtenerDiagnosticoDePacientes( ?,? )}");
				cstmt.setString("NUMEROHISTORIA", numeroHistoria);
				cstmt.setString("ESENTRENAMIENTO", esEntrenamiento);
			    ResultSet rs =  cstmt.executeQuery();
			     while(rs.next())
				{
			    	 diagnostico = new Diagnostico();
			    	 diagnostico.setIdDetalleEnfermedad(rs.getInt("IDDETALLEENFERMEDAD"));
			    	 diagnostico.setNumeroHistoria(rs.getString("NUMEROHISTORIA"));
			    	 diagnostico.setValor(rs.getString("VALOR"));
			    	 diagnostico.setValor1(rs.getString("VALOR1"));
			    	 diagnostico.setValor2(rs.getString("VALOR2"));
			    	 diagnostico.setNombreTecnico(rs.getString("NOMBRETECNICO"));
					listaDiagnostico.add(diagnostico);
				}
				rs.close();
				cstmt.close();
			}
			catch(Exception e)
			{
				e.printStackTrace();
				System.out.print(e.getMessage());
				
			}finally {
				 if (cnx != null) try { cnx.close(); } catch(Exception e) {e.printStackTrace();}
	        }
			
		return listaDiagnostico;
	}
	
	public static  List<HmHistoriaclinica> obtenerResultadoDiagnosticoSindromeMetabolico(String numeroHistoria,String esEntrenamiento) {
		
		Connection cnx = ConexionWithSQL.obtenerConexionParaHistoriaClinica();
		
		HmHistoriaclinica  resultado;
		List<HmHistoriaclinica> listaResultado = new ArrayList<HmHistoriaclinica>();
			try
			{
				CallableStatement cstmt = cnx.prepareCall("{call dbo.obtenerResultadoDiagnosticoSindromeMetabolico( ?,? )}");
				cstmt.setString("NUMEROHISTORIA", numeroHistoria);
				cstmt.setString("ESENTRENAMIENTO", esEntrenamiento);
			    ResultSet rs =  cstmt.executeQuery();
			     while(rs.next())
				{
			    	 resultado = new HmHistoriaclinica();
			    	 resultado.setIdhistoriaclinica(rs.getInt("IDHISTORIACLINICA"));
			    	 resultado.setNumerohistoria(rs.getString("NUMEROHISTORIA"));
			    	 resultado.setFechaRegistro(rs.getDate("FECHAREGISTRO"));
			    	 resultado.setSindromemetabolico(rs.getString("SINDROMEMETABOLICO"));
			    	 
			    	 listaResultado.add(resultado);
				}
				rs.close();
				cstmt.close();
			}
			catch(Exception e)
			{
				e.printStackTrace();
				System.out.print(e.getMessage());
				
			}finally {
				 if (cnx != null) try { cnx.close(); } catch(Exception e) {e.printStackTrace();}
	        }
			
		return listaResultado;
	}

}
